const jwt = require('jsonwebtoken');


module.exports = function(role){
    return function(req, res, next){
        //мидлвейр для проверки роли - админ или юзер
        if(req.method === 'OPTIONS'){
            next();
        }
    
        try {   
            const token = req.headers.authorization.split(' ')[1];
    
            if(!token){
               return res.status(401).json({message:"Пользователь не авторизован"});
            }
    
            const decoded = jwt.verify(token, process.env.SECRET_KEY);

                if(decoded.roles !== role){
                    return res.status(401).json({message:"Нет доступа"});
                }
                
                req.user = decoded;

                next();
    
        } catch (e) {
            res.status(401).json({message:"Пользователь не авторизован"});
        }
    }
}